<template>
  <!-- 值 -->
  <div>
    <component :is="setComp(props.dataType)" />
  </div>
</template>

<script lang="ts" setup>
import InputValue from './InputValue/index.vue';
import JSONValue from './JSONValue/index.vue';
import { EDataType } from '../type';

const props = defineProps<{
  dataType?: EDataType;
  dataValue?: any;
}>();

// 设置组件
const setComp = (dataType?: EDataType) => {
  if (!dataType) {
    return InputValue;
  }
  switch (dataType) {
    case EDataType.Object:
    case EDataType.List:
      return JSONValue;

    default:
      return InputValue;
  }
};

setComp(props.dataType);
</script>
